package com.dupt.system.mapper;

import java.util.List;
import com.dupt.system.domain.MaterialDetial;
import org.apache.ibatis.annotations.Param;

/**
 * 物料明细Mapper接口
 * 
 * @author zhuanyu.sun
 * @date 2025-08-26
 */
public interface MaterialDetialMapper
{
    /**
     * 查询物料明细
     * 
     * @param materialDetialId 物料明细主键
     * @return 物料明细
     */
    public MaterialDetial selectMaterialDetialByMaterialDetialId(Long materialDetialId);

    /**
     * 查询物料明细列表
     * 
     * @param materialDetial 物料明细
     * @return 物料明细集合
     */
    public List<MaterialDetial> selectMaterialDetialList(MaterialDetial materialDetial);

    /**
     * 新增物料明细
     * 
     * @param materialDetial 物料明细
     * @return 结果
     */
    public int insertMaterialDetial(MaterialDetial materialDetial);

    /**
     * 修改物料明细
     * 
     * @param materialDetial 物料明细
     * @return 结果
     */
    public int updateMaterialDetial(MaterialDetial materialDetial);

    /**
     * 删除物料明细
     * 
     * @param materialDetialId 物料明细主键
     * @return 结果
     */
    public int deleteMaterialDetialByMaterialDetialId(Long materialDetialId);

    /**
     * 批量删除物料明细
     * 
     * @param materialDetialIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMaterialDetialByMaterialDetialIds(Long[] materialDetialIds);

    /**
     * 根据物料内部编码查询物料明细
     * @param materialInnerCode
     * @return
     */
    public List<MaterialDetial> selectMaterialDetialByMaterialInnerCode(String materialInnerCode);


    /**
     * 根据物料编码查询物料明细
     * @param materialCode
     * @return
     */
    public List<MaterialDetial> selectMaterialDetialByMaterialCode(String materialCode);

    /**
     * 根据物料编码查询物料明细
     * @param materialName 物料名称
     * @param materialItem 规格型号
     * @return
     */
    public List<MaterialDetial> selectMaterialDetialByMaterialNameAndMaterialItem(@Param("materialName") String materialName, @Param("materialItem") String materialItem);

}
